perm filename ECHSER.MID[NET,MRC]2 blob sn#347767 filedate 1978-04-07 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	TITLE ECHSER
C00004 ENDMK
C⊗;
TITLE ECHSER
SUBTTL Definitions

; Mark Crispin, SU-AI, April 1978

; Assembly switches

IFNDEF SVRSKT,SVRSKT==7			; default listen socket
IFNDEF PDLLEN,PDLLEN==50		; stack length

; AC definitions.  0→3 are used by NETWRK

X=4 ? A=5 ? B=6 ? P=17

PDL:	BLOCK PDLLEN			; stack

ECHSER:	JFCL
	RESET
	MOVE ['ECHSER]
	SETNAM
	MOVE P,[PDL(-PDLLEN)]
	MOVEI [DEBREAK ? JRST SUICID]
	MOVEM JOBAPR
	CLKINT 5.*60.*60.		; must die if around too long
	OUTSTR [ASCIZ/ECHSER started
/]

; Listen for a connection on our socket

	MOVEI SVRSKT
	MOVEM LSNSKT
	PUSHJ P,LISTEN
ECHLUP:	PUSHJ P,NETICW
	PUSHJ P,NETOCH			; send character to user
	PUSHJ P,NETSND
	JRST ECHLUP

SUICID:	RESET ? EXIT

...LIT:	CONSTANTS

; Wonderful network routines

SVRRTS==-1				; include server routines
ERRTNS==-1				; include error routines
ERRHAN==-1				; include automagic error handling
ERRINS==<JRST SUICID>			; error instruction

.INR∂T NETWRK[NET,MRC]

END ECHSER